Systems and methods for capturing screen displays from a host computing system for display at a remote terminal

ABSTRACT

The present invention provides systems and methods for monitoring a host computing system from a maintenance computing system located at a remote location. The system of the present invention includes a frame grabber that is connected the digital output of a video controller associated with the host computing system and collects sets of data output in digital form from the video controller independent of an analog to digital converter. Each collected digital data set represents a frame of data displayed on a terminal of the host computing system by the video controller and is stored in a storage device associated with the frame grabber. Successive sets of data are also compared to each other, and the differences between the data are also stored in the storage device. During a maintenance session, a first data set representing the data currently displayed on the terminal of the host computing system is transmitted to the maintenance computing system, and thereafter, only changes between successive data sets are transmitted to update the maintenance computing system.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of application Ser. No. 10/016,484filed Dec. 10, 2001, which has issued as U.S. Pat. No. 6,825,846.

FIELD OF THE INVENTION

The present invention relates in general to systems and methods used foremulation on a remote terminal of information displayed on a hostcomputing system, and more particularly to a terminal emulation systemand method that uses a hardware interface with the host computing systemfor capture of displayed information, capture of information concerninghost computing system health information, and control of keyboard,mouse, and drives of the host computing system.

BACKGROUND OF THE INVENTION

In recent years there has been a significant increase in reliance oncomputing systems to aid workers in performance of their assigned task.In fact, it is not uncommon for most, if not all, employees of a companyor other organization to have access to some type of computing system.To increase productivity and sharing of system resources, many companieshave further introduced computer networks linking all of the computingsystems of the company together, thereby allowing for internalcommunication in the company and the sharing of files and otherinformation between different computing systems. Many of these networksare not limited to one physical location, but instead, may linkcomputing systems together that are located at many different geographiclocations, such as the different offices of a company. Further, many ofthese networks allow users access via a telephone line or other datacommunication link, no matter where the computing system is located,such as in the case of an employee who is traveling with a laptop.

FIG. 1 illustrates a common network system 10. In general, networksystems typically include a network 12, such as a Transmission ControlProtocol/Internet Protocol (TCP/IP) network or other similar networksystem. Connected to the network is a plurality of host computingsystems, 14 a-14 n, representing the individual computing systems usedthroughout the company or organization. The network system may alsoinclude one or several file servers 16 connected to the network 12 forstoring and allowing access to shared files and resources. The networksystem 10 may also include web servers 18 for connecting the computingsystems to the Internet. Other server systems 20 may also be present.

An important problem with computer networking is the ability to providemanagement and maintenance to each of the host computing systems andservers connected to the network. As stated, the computing systems andservers may be located at various locations throughout a company ororganization, some of which may be in different geographic locations. Assuch, it is typically not feasible to provide maintenance and servicingof a particular computing system or server by going to the physicallocation of the computer or server. Further, providing maintenanceinformation to the user of the computing system over the telephone isalso not typically advantageous, as many computing system users are notas knowledgeable concerning computing system configuration andmaintenance.

For this reason, management systems have been developed that allownetwork maintenance personnel, from a central location, to maintaincomputing systems and servers connected to a network. Specifically, withreference to FIG. 1, many network systems also include either one orseveral maintenance computing systems 22 connected to the network. Themaintenance computing system, sometimes referred to as the clientcomputing system, is capable of communicating with other host computingsystems and servers in the network. The maintenance computing systemmonitors the health of the hardware of the host computing systems andalso the information output to the display of the host computingsystems. If a particular computing system or server is indicated to haveerrors, the maintenance computing system can access the healthparameters associated with the host computing system or server and canalso receive copies of the data output to the display of the hostcomputing system or server. The data displayed on the host computingsystem is also displayed on the maintenance computing system, so thatthe maintenance personal can view errors and other diagnosticinformation typically displayed by the host computing system to its ownterminal. In other words, the maintenance computing system acts as aterminal emulator emulating the data displayed on the display of thehost computing system.

There are currently several terminal emulation systems commerciallyavailable for centralized maintenance of computing systems. Theseconventional systems mainly fall into two categories; software-based andsoftware/hardware hybrid systems. While both types of systems allowmaintenance personnel to perform maintenance, upgrades reconfiguration,etc. of host computing systems and servers from a remote location, thereare some drawbacks to these conventional systems.

Specifically, as mentioned, some maintenance systems and servers aresoftware based. One commercially available software-based maintenancesystem is PC Anywhere® developed and distributed by Symantec Corporationlocated in Cupertino, Calif. This software-based system is describedmore fully with reference to FIG 2A. In particular, FIG. 2 a illustratesportions of the network system 10 of FIG 1, including a representativehost computing system 14 the network 12, and a maintenance computingsystem 22. It is understood that the host computing system could be aserver. The representative host computing system includes a CPU 24.Connected to the CPU 24 is a first bus bridge typically referred to as anorth bridge 26. The north bridge connects a local bus to the CPU, wherethe bus among other things provides a communication link between the CPUand a memory controller 28 and a memory system 30. The host computingsystem 14 also includes a second bridge, typically referred to as asouth bridge 32. The south bridge links various buses 34 a-34 nto theCPU. For example, an industrial standard architecture (ISA) bus may beconnected to the south bridge and a bus connecting the CPU to a keyboardcontroller 36 may also be present on one of the buses of the southbridge. The south bridge 32 is also connected to either one or severalperipheral component interface (PCI) buses 38. Connected to the PCIbuses are slots for connection of peripherals such as displays,printers, etc. to the computing system. Important to the presentdiscussion, one peripheral, (here shown connected to PCI Bus 0), is avideo controller 42, such as a video graphic array (VGA), forcontrolling the display of information on a display 47 associated withthe computing system.

With regard to the software-based computer maintenance systems, (PCAnywhere being one example), each host computing system 14 includesmaintenance software 46 b for operation on the CPU. The maintenancecomputing system 22 includes many of the same components andconfigurations as the host computing systems 14. Importantly, themaintenance computing system also includes maintenance software 46 a.The software 46 a and 46 b are operating system (OS) based software,meaning that they operate in conjunction with the operating system andcan be run only after the operating system of the computer is running.

During normal operation of the computing system, after the operatingsystem has been initiated, problems with a host computing system 14located on a network 12 can be observed at a remote location using themaintenance computing system 22. Specifically, when activated, healthinformation concerning the host computing system is sent to themaintenance computing system 22. This health information may includedata concerning the health of the hardware components of the hostcomputing system 14, such as ambient temperature monitoring, PCIvoltage, etc. This health information is gathered by the software 46 b,compressed, and transmitted to the maintenance computing system. Thesoftware 46 a of the maintenance computing system evaluates the healthinformation to determine if there are any hardware problems with thehost computing system 14.

Importantly, the software, 46 a and 46 b, also operate collectively toemulate the information displayed on the display terminal 47 of the hostcomputing system 14 to the display associated with the maintenancecomputing system 22 so that the information displayed on the hostcomputing system can also be viewed by maintenance personnel operatingthe maintenance computing system 22. Specifically, the software 46 bresident on the host computing system 14 obtains video data transmittedby the CPU of the host computing system to the video controller 42. Thesoftware 46 b uses the video driver software of the operating system toretrieve the data. The software 46 b, when commanded, retrieves the datacorresponding to the data displayed on the terminal display 47 of thehost computing system 14, compresses the data, and sends the data to themaintenance computing system 22. The software 46 a resident on themaintenance computing system 22 receives the data, decompresses it, anddisplays the data on the display associated with the maintenancecomputing system 22, where it can be viewed by maintenance personnel.

Although the above-discussed software-based system provides for remotemaintenance of a networked computing system, there are some drawbacksand limitations to this approach. Specifically, as discussed, thesoftware 46 b resident in the host computing system, during amaintenance session, repeatedly receives, compresses, and sends a screencapture of the data displayed on the terminal display 47 of the hostcomputing system 14. This can require a large amount of computing timeand resources of the CPU associated with the host computing system, assell as negatively affecting network bandwidth for transmission of thedata. For example, if the video controller 42 of the host computingsystem outputs information for a color display that is 1024×768, eachdata transmission by the software 46 b can be rather large.

In this instance, if there are 16 bits per pixel or two (2) bytes, then1024×768×2 bytes is approximately 1.5 megabytes of information for eachframe of data representing the data displayed on the display terminal 47of the host computing system 14 to the maintenance computing system 22.The software requires a significant amount of processing time from theCPU of the host computing system to collect and compress the data, andtransmission of the data uses unacceptable amounts of network bandwidth.

Another issue with conventional software-based maintenance systems isthat the software, 46 a and 46 b; resident on the host and maintenancecomputing systems is OS-based software and are only operable once theoperating system has been initialized. As such, the software is notoperable during power on and initialization of the host computingsystem. During start up of the computing system, the Basic Input OutputSystem is initiated and a power on self test (POST) is performed. POSTperforms several tests of the hardware components of the computingsystem and displays the results of these tests in a text mode on thedisplay 47 of the host computing system 14. It is only after POST hasrun that the operating system associated with the host computing systemis initiated. As such, the text information displayed by POST to thedisplay terminal 47 of the host computing system 14 is not accessible bythe software, 46 a and 46 b, of the conventional software-based systems.Thus, the maintenance personnel located at the remote location cannotassess if there are problems with the host computing system that arefound and flagged during POST.

FIG. 2B is an illustration of a conventional software/hardware hybridsystem. A system according to this configuration has been developed byAmerican Megatrends, Inc., who is also the current assignee of thepresent invention. In this system, snooping hardware 48 is added to eachof the host computing systems, 14 a-14 n, to detect when the videocontroller is in a text mode and retrieve text data for display at themaintenance computing system 22. The snooping hardware is connected tothe same PCI Bus to which the video controller 42 is connected. The hostcomputing system also includes hardware, not shown, for assessinginformation related to the health of the computing system.

Further, the system includes bus master hardware 44 for retrieving andtransmitting text and graphic data to the maintenance computing system22. The bus master hardware includes a private network 45 a separatefrom the main network 45 b of the host computing system for transmissionof data to the maintenance computing system. The private network 45 a istypically preferred as a separate network connection so that thebandwidth of the main server connection of the host computing system 14is not affected. In the discussions below, conservation of networkbandwidth refers to this private connection. It is understood thatconservation of bandwidth in the private network 45 a is an importantconcern.

Importantly, with regard to the software/hardware hybrid system, thesnooping hardware allows for capture of text mode data during POST andstart up of the host computing system. Further, if the video controllerand snooping hardware are connected to PCI Bus 0, the snooping hardwaremay be used to emulate keyboard and mouse commands to the host computingsystem.

Specifically, in operation, the snooping hardware 48 watches the PCI Busfor data traffic associated with the video controller. If the snoopinghardware detects that the video controller is in the text mode, such asduring POST, then the text data is available at a known location in thememory of the video controller. The text data is retrieved by the busmaster hardware 44 and transmitted through the private network 45 aassociated with the bus master hardware to the maintenance computingsystem.

However, if the snooping hardware determines that the video controlleris in the graphics mode, such as after the operating system has started,then the graphics data location is unknown to the snooping hardware, asit varies from controller to controller. In this instance, the presentsystem must still use software 46 b to gather the graphics data.Specifically, the software 46 b is OS-based software and uses the videodriver associated with the operating system to retrieve the graphicsdata. The graphics data is then transmitted by the bus master hardware48 via the private network 45 a associated with bus master hardware tothe maintenance computing system.

Importantly, as discussed, if the video controller and snooping hardwareare connected to PCI Bus 0, the snooping hardware is also capable ofemulating keyboard and mouse commands to the keyboard controller 36.

Although the software/hardware hybrid system illustrated in FIG. 2Bprovides several advantages over the conventional software-basedsystems, there are also some disadvantages with these conventionalsystems. Specifically, although the snooping hardware determines whenthe video controller is in a text mode, such as during POST, and can,via the bus master 44, transmit text data to the maintenance computingsystem, software 46 b must still be used to collect graphic data. Aswith the conventional software-based systems, the software 46 b of thesoftware/hardware hybrid system retrieves, compresses, and transmits thegraphical data, which requires added computing time and use of systemresources of the CPU of the host computing system 14 and its network 45a bandwidth. Further, because both the conventional software-based andsoftware/hardware hybrid systems require installation of software 46 bon each computing system, there are also concerns with routine softwareupdates which must be periodically performed for each system, especiallywhen new versions of the operating system are added to the hostcomputing systems.

In addition to the problems with software 46 b, there are also problemsconcerning which PCI Bus the video controller is connected to in a givenhost computing system. Specifically, as stated the snooping hardware 48must be on the same PCI bus as the video controller 42 to determine whenthe video controller is in a text mode. However, the snooping hardware48 can only emulate keyboard and mouse commands if it is connected toPCI Bus 0. It is not always assured that the video controller will belocated on PCI Bus 0. As such, if the video controller 42 is on a busother than PCI Bus 0, the snooping hardware will not be located on PCIBus 0 and cannot emulate keyboard and mouse commands.

With regard to FIG. 2C, some terminal emulation systems have beendeveloped that alleviate the need for software on the host computingsystem. These systems 50 also attempt to reduce the amount of datatransmitted to the maintenance computing system so as to reduce theaffect on network bandwidth. These systems 50 are connected to theanalog output used by the video controller 42 to transmit data to thedisplay terminal 47 associated with the host computing system. Thesesystems convert analog data output by the video controller 42 to digitaldata external from the video controller, compress the data, and send itacross the network. In particular, these conventional systemsperiodically capture analog display data for different display times.The first set of display data is transmitted to the maintenancecomputing system. However, for remaining data captures, only the changesin the display data are transmitted. As such, less data is required tobe transmitted either when there have been no changes in the display oronly small changes.

FIG. 2C illustrates an example of these systems. In these systems, theCPU 24 of the computing system sends data to the video controller 42 fordisplay on the display terminal 47. The video controller receives thedata and converts it to analog form for transmission to the displayterminal 47. These conventional systems 50 are connected between thevideo controller 42 and the display terminal 47. As the data is analog,these systems include an A/D converter 51, which converts the captureddata to digital data. Each set of digital data is stored in differentsections of registers, 53 a-53 n. Successive data sets are then comparedto each other by the processor or by a specifically configuredcomparator, so that only the differences are transmitted to themaintenance computing system.

Although these conventional systems reduce the amount of data that mustbe sent for each new set of captured date, there is one significantdrawback with these systems. Specifically, as mentioned, theseconventional systems 50 capture and digitize analog data output by thevideo controller 42, which was converted from digital to analog data bythe video controller. Errors are introduced into the data both intransforming the data to analog data and in digitizing the data. Theseerrors may be somewhat random, such that two identical sets of analogscreen data converted to digital format at different times may becompletely different. These errors may alter the display data such thatmore of the data seems to be different between different sets ofcaptured data. For example, even if the display has not changed, twosets of screen captures of the data may be different when compared dueto the errors in converting the data from digital to analog and back todigital. As such, the system may transmit data to the maintenancecomputing system, even when there has been no change in the display,thereby requiring huge amounts of data to be transmitted over theprivate network 50, making it a slow process. This will also make thevisual experience of the graphics screen at 22 sluggish.

SUMMARY OF THE INVENTION

The present invention provides systems and methods that overcome many ofthe above-expressed deficiencies with conventional terminal emulationsystems. Specifically, the present invention provides systems andmethods that reduce the amount of data that is transmitted to themaintenance computing system for terminal emulation. This reduction indata, in turn, minimizes the effects of terminal emulation on networkbandwidth. Further, the systems and methods of the present inventionuses a hardware-based system that alleviates the need for softwareresident on host computing system for collection, compression, andtransmission of data. This alleviates use of the CPU of the hostcomputing system for terminal emulation. Additionally, the systems andmethods of the present invention use a USB interface connected to theUSB port of the host computing system. The USB interface can be used forkeyboard, mouse, and storage device emulation. This is an advantage overconventional software/hardware hybrid systems, which require connectionto the PCI Bus 0 for keyboard and mouse emulation. The USB interfacealso provides for remote reboot of the host computing system using avirtual drive or installation of new software on the host computingsystem.

In particular, the systems and methods of the present invention overcomeproblems with excessive use of network bandwidth to transmit data to themaintenance computing system. The systems and methods of the presentinvention operate in conjunction with a video controller that outputsboth digital and analog signal representations of the data to bedisplayed by the display terminal associated with the host computingsystem. Such video controllers are commonly used in Notebook PCs, butare applicable for use in most computing systems. These controllerssimultaneously output analog and digital data. In many instances, theanalog data is used as an output to an overhead projector or othersimilar analog system, while the digital output is used to send text andgraphic data to a TFT display terminal associated with the computingsystem.

The systems and methods of the present invention use the digital outputdata, as opposed to the analog output data for frame capture and framecomparisons. The systems and methods of the present invention transmit afirst set of frame data to the maintenance computing system, andthereafter transmit only data representing changes in the display data.Importantly, the digital data output by the video controller is notconverted, but instead is the representation of the data as receivedfrom the CPU. Because the digital data has not been converted, there areno conversion errors in the data. As such, successive frame captures ofthe same display data should be very similar, with little to nodifference in the data. Comparisons of different frames should revealonly the true changes in the display data. Thus, by using the digitaldata output by the video controller, the systems and methods of thepresent invention can reduce the amount of data transmitted to themaintenance computing system, thereby freeing bandwidth on the network.

In more detail, the system of the present invention includes managementhardware that includes a frame grabber connected to the digital outputof the video controller. The frame grabber of the present inventioncaptures the digital data output by the video controller fortransmission to a maintenance computing system across a network.Specifically, the frame grabber of the present invention uses thedigital flat panel output of the video controller, which can be obtainedsimultaneous to the standard analog output to the display terminal. Thesystem of the present invention further includes storage memory forstoring data captured by the frame grabber and comparators for comparingsuccessive data sets. Further, the system of the present inventionincludes a processor and a connector for connecting the system of thepresent invention to the network through a private connection.

In operation, the frame grabber captures data sets of the digitaldisplay data and control information output by the video controller.Each set of captured data is stored in memory, with the first set ofcaptured data being transmitted across the network to the maintenancecomputing system for display on a display terminal associated with themaintenance computing system. Successive sets of data are compared toone another to determine the differences in the data. These differences,if any, represent changes in the data displayed on the display terminalof the host computing system. The difference data received from thesecomparisons is transmitted to the maintenance computing system to updatethe information displayed on the display terminal associated with themaintenance computing system to match the data displayed on the hostcomputing system.

In addition to reducing the amount of data transmitted to themaintenance computing system, the systems and methods of the presentinvention also typically do not require installation of software on thehost computing system. Specifically, the system of the present inventionis typically embodied in management hardware in the form of anelectronic card that is inserted into a slot of each of the hostcomputing systems. As the management hardware of the present inventionis connected to the output of the video controller, it is capable ofcapturing both text and graphical data. This is unlike the hardware ofthe conventional software/hardware systems, which is connected to thePCI Bus associated with the video controller. These conventional systemsrequire software resident on the host computing system to determine thelocation of graphic data in the memory of the video controller.

Further, the management hardware of the present invention is capable ofcapture, compression, and transmission of the data. As this is performedon board the system card, as opposed to the use of software, there is nooverloading of the host computing system's CPU to perform theseoperations.

The system of the present invention also includes a dedicated universalserial bus (USB) interface. The USB interface connects to the USB portof the host computing system. The USB interface allows the system of thepresent invention to emulate a keyboard and mouse so that commands maybe provided to the CPU of the host computing system from the maintenancecomputing system via the USB interface. Importantly, this aspect of thepresent invention alleviates the need for the video controller andmanagement hardware to be located on PCI Bus 0 to emulate the keyboardand mouse, as is required in the conventional software/hardware hybridsystems. Instead, the design of the management hardware of the presentinvention allows the video controller to be connected to any of the PCIBuses, with keyboard and mouse emulation occurring via the USBinterface.

Further, and importantly, the USB interface of the management hardwarealso allows for emulation of a CD-ROM or floppy disk. Specifically, theUSB interface of the present invention appears to the host computingsystem as an added keyboard, mouse, and storage device. As such, the USBport allows for keyboard, mouse, and data storage emulation from aremote location. The data storage emulation may have severaladvantageous uses. For example, the USB interface could be used to boota host computing system using software located in a CD inserted in theCD-ROM or floppy disk inserted in the disk drive of the maintenancecomputing system. For example, for remote system boot up, the systemsetup of the host computing system via keyboard emulation could beconfigured to boot from the USB port. In this instance, the USBinterface is used to emulate the CD-ROM or floppy disk of themaintenance computing system to the host computing system. As such, bootsoftware loaded in the CD-ROM or floppy disk drive of the maintenancecomputing system could be used to boot the host computing system. In asimilar manner, the virtual CD-ROM and floppy disk could be used toremotely install or upgrade existing software on the host computingsystem.

The present invention also includes hardware for determining the healthof the host computing system. This hardware is capable of retrieving thehealth information from the host computing system and determining ifthere are any problems with the hardware. If there is a hardwareproblem, the processor transmits the data to the maintenance computingsystem.

In typical embodiments, the management hardware of the present inventionreceives power from the PCI slot to which it is connected. However, as abackup, the management hardware of the present invention also includesan AC adapter and AC outlet connector for supplying power via an ACoutlet to the management hardware. This allows the management hardwareto receive power, even if the host computing system loses power.Further, the management hardware may include a battery backup for itsown power requirements. The backup battery power is available ininstances in which both AC outlet power and PCI slot power are notavailable. The management hardware includes logic for detecting whenpower is not present from the PCI slot or from the AC outlet power. Inthis instance, the backup battery will provide power for a short time,and the management hardware will generate alerts via its privatenetwork, paging, etc. alerting the maintenance personnel that power isnot available.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described the invention in general terms, reference will nowbe made to the accompanying drawings, which are not necessarily drawn toscale, and wherein:

FIG. 1 is a generalized block diagram of a network system within whichthe systems and methods of the present invention may be implemented,according to one embodiment of the present invention.

FIG. 2A is a generalized block diagram of a prior art software-basedmaintenance system implemented in the network of FIG. 1 to emulate datadisplayed on the display terminal of a host computing system to adisplay terminal on a maintenance computing system.

FIG. 2B is a generalized block diagram of a prior art software/hardwarehybrid maintenance system implemented in the network of FIG. 1 toemulate data displayed on the display terminal of a host computingsystem to a display terminal on a maintenance computing system.

FIG. 2C is a generalized block diagram of a prior art maintenance systemimplemented in the network of FIG. 1 to emulate data displayed on thedisplay terminal of a host computing system to a display terminal on amaintenance computing system by digitizing data output from the videocontroller of the host computing system and sending only changes in thedisplay data to the maintenance computing system.

FIG. 3A is a generalized block diagram of maintenance system accordingto one embodiment of the present invention implemented in the network ofFIG. 1 to emulate data displayed on the display terminal of a hostcomputing system to a display terminal on a maintenance computingsystem.

FIG. 3B is a schematic diagram of the of maintenance system according toone embodiment of the present invention implemented in a host computingsystem.

FIGS 4A and 4B are generalized block diagrams of the operationsperformed by the maintenance system according to one embodiment of thepresent invention implemented in the network of FIG. 1 to emulate datadisplayed on the display terminal of a host computing system to adisplay terminal on a maintenance computing system.

DETAILED DESCRIPTION OF THE INVENTION

The present invention now will be described more fully hereinafter withreference to the accompanying drawings, in which preferred embodimentsof the invention are shown. This invention may, however, be embodied inmany different forms and should not be construed as limited to theembodiments set forth herein; rather, these embodiments are provided sothat this disclosure will be thorough and complete, and will fullyconvey the scope of the invention to those skilled in the art. Likenumbers refer to like elements throughout.

FIG. 3A illustrates a general embodiment of the present invention asillustrated in the network system 10. FIG. 3A illustrates a hostcomputing system 14, network 12, and a maintenance computing system 22.These devices are all part of a larger network system, such as thesystem illustrated in FIG. 1. The host computing system 14 associatedwith the present invention is similar to those previously discussed.However, the host computing system includes a video controller 55capable of outputting digital data to be displayed by a displayterminal. These types of video controllers are commercially availableand are typically implemented in laptop computing systems. VGA videocontrollers capable of outputting digital data are manufactured and soldby S3Graphics, Inc. located in Fremont, Calif., ATI Technologies, Inc.located in Thornhill, Ontario, Canada, Trident Microsystems, Inc.located in Sunnyvale, Calif., and Intel Corporation, located in SantaClara, Calif., to name a few. The system 52 of the present invention isconnected to the digital output of the video controller from which itcaptures digital display data for transmission to the maintenancecomputing system 22 via its private network and public network 12.

FIG. 3B is a more detailed description of one embodiment of themanagement hardware 52 of the present invention. Specifically, thesystem of the present invention according to one embodiment is embodiedas management hardware in a card 54 that is connected to the hostcomputing systems 14 via a PCI/AGP Bus 0, to one slot of the hostcomputing system. The system of the present invention is not limited toa card configuration, and instead could be a more permanent installationin the host computing system.

The system 52 of the present invention includes a frame grabber 56connected to the TFT/LCD bus of a video controller 55. As mentioned, theTFT/LCD bus is a digital output of display data from the videocontroller representing the data to be displayed on the display terminal47 associated with the host computing system. The system of the presentinvention also includes a processor/CPU 64 for communicating datareceived from the frame grabber to the maintenance computing system 22.The frame grabber includes dedicated memory SDRAM 58 a connected via bus62, and the processor includes dedicated memory SDRAM 58 b. The CPU 64can access frame grabber memory 58 a via the bus 62 and frame grabber56. The system 52 of the present invention also includes a transmissiondevice such as a modem 66 and connector 68 for connecting the system 52to the maintenance computing system via a telephone line. Alternatively,the system also includes a network connection point 70 as a transmissiondevice for connecting the system to the maintenance computing system viathe network 12. This network connection is typically a privateconnection separate from the main connection of the host computing sytemto the network 12. The private connection is separate so that it doesnot effect the network bandwidth of main network connection of the hostcomputing sytem to the network.

Importantly, the system further includes a universal serial bus (USB)interface 72 for connecting the system to the USB port 74 of the hostcomputing system 14. Specifically, the system 52 of the presentinvention is configured such that it is connected to the USB port of thehost computing system 14. The USB interface is presented to the hostcomputing system as an extra keyboard and mouse on top of the hostcomputing system's physical keyboard and mouse. In operation, commandsfrom the keyboard and mouse of the maintenance computing system 22 passacross the network 12, through the card 54 to the USB port 74 of thecomputing system.

The USB interface also presents itself as an added storage device, suchas a CD-ROM of floppy disk. This allows the system of the presentinvention to emulate a virtual CD-ROM or floppy disk host computingsystem. These virtual devices can be used to boot the host computingsystem remotely using the maintenance personnel's choice of operatingsystem. For example, for remote system boot up, the system setup of thehost computing system via keyboard emulation could be configured to bootfrom the USB port. In this instance, the USB interface is used toemulate the CD-ROM or floppy disk of the maintenance computing system tothe host computing system. As such, boot software loaded in the CD-ROMor floppy disk drive of the maintenance computing system could be usedto boot the host computing system. In a similar manner, the virtualCD-ROM and floppy disk could be used to remotely install or upgradeexisting software on the host computing system.

With reference to FIG. 3B, the system of the present invention furtherincludes hardware for assessing the health of the host computing system.Specifically, the system 52 of the present invention includes an I2Ccontroller 78 that receives information concerning the health of thehost computing system 14 via connector 76. This health information mayinclude any number of selected parameters, such as ambient temperaturemonitoring, PCI voltages, battery voltage, to name a few. The system 52of the present invention also includes a controller 80 connected to theslot connector 76. This controller 80 is configured to transmit commandsto the host computing system to reset or power down. As such, the hostcomputing system 14 may be rebooted from a remote location by commandingthe controller 80 to reset or power down the host computing system.

In typical configurations, the management hardware 52 of the presentinvention receives operating power via the PCI slot of the hostcomputing system to which it is connected. However, as a first backup,the management hardware 52 of the present invention may include anindependent AC adapter 84 and AC outlet connector 82 for connection to awall outlet. If power is not available from the PCI slot for any reason,the management hardware of the present invention will use power from theAC adapter.

As a further backup, the management hardware of the present inventionmay further include a battery pack 86, or other similar on board powersource. Associated with the battery pack 86 and the AC power input islogic 88 for detecting when AC power is not available. In theseinstances, the logic 88 switches the power supply to the system card 54from the AC power source to the battery pack 86. In this instance, thebackup battery will provide power for a short time, and the managementhardware will generate alerts via its private network, paging, etc.alerting the maintenance personnel that power is not available.

With reference to FIG. 3B, the system of the present invention may alsoinclude an ICE port 90 and a serial port 92. The serial port 92 is usedas an entry way for debugging of the system 52.

As mentioned above, the system of the present invention is used tocapture copies of the data and control information to be displayed on ahost computing system. This data can then be transmitted to amaintenance computing system located at a remote location and displayedon a display terminal of the maintenance computing system. Importantly,the system of the present invention is connected to the digital outputof the video controller of the host computing system. The systemtransmits a first set of data representing the data displayed on thedisplay terminal of the host computing system to the maintenancecomputing system via the network so that the data may be viewed bymaintenance personnel. Thereafter, the system of the present inventioncompares successive data sets from the video controller and compareseach set to a previous data set. The system then transmits only thedifferences to the maintenance computing system so that the display onthe maintenance computing system can be updated with the newinformation. This reduces the amount of data transmitted. Further, andimportantly, because the system is connected to the digital output ofthe video controller as opposed to the analog output, there are lesserrors in the data due to conversion from digital to analog by the videocontroller and from analog to digital by more conventional maintenancesystems. As such, when the data is compared to previous data sets, thedifferences between the data sets are due to real changes in the displaydata, as opposed to errors in the display data.

Further, the system of the present invention also gathers data relatedto the health of the host computing system. This health data is analyzedby the system 52 and any problems are also transmitted to themaintenance computing system, or alternatively, all of the gatheredhealth data is transmitted.

FIGS. 4A and 4B illustrate the operation of the present inventionaccording to one embodiment. Looking at FIG. 4A, during operation (100),the controller 80 determines whether the host computing system 14 ispowered up. (See step 110). If powered up, the controller 80 alsodetermines whether the host computing system 14 reset is active. (Seestep 120). If the host computing system is not powered up or the resetis active, the steps are repeated. Once it is determined that the hostcomputing system is powered up and active, the I2C controller 78receives health information related to the host controller. (See step130). This health information may include data concerning the health ofthe hardware components of the host computing system, such as ambienttemperature monitoring, PCI voltage, etc. The controller 64 stores thisinformation in flash memory 60 and updates the time stamp for the data(See step 140). Further, the processor evaluates the health informationto determine if there are any hardware problems. (See step 150). Thisevaluation may involve comparing the received data to stored thresholdparameters to determine if the received data exceeds these thresholds,or the data may be in the form of flags received by the I2C controllerindicating hardware errors. if the controller 64 determines that thereare hardware errors, the controller 64 may generate an email alert orpage via the modem 68 to the maintenance personnel. (See steps 160 and170).

In addition, the frame grabber 56 of the present invention grabs orgathers digital data from the digital output of the video controller 50.(See step 180). During start up and POST, the frame grabber grabs textdata and when the OS is initiated and operating, it grabs graphic databound for the terminal 47. The frame grabber in one embodiment of thepresent invention gathers data on a cycle of seventy (70) times persecond. The frame grabber is typically operated such that it constantlygrabs data from the output of the video controller. As each data frameis gathered, it is stored in RAM 58. (See step 190). Further, andimportantly, each frame of data is also compared to the frame precedingit to determine changes in the data displayed by the host computingsystem. Specifically, the RAM 58 is partitioned such that one data frameis stored in one partition and a next data frame is stored in anotherpartition. The data is then compared to each other using standardcomparison techniques, and data representing the differences is storedin a third partition of the RAM 58. As stated, the capture andcomparison of data frames is typically a continuous process, with eachdata frame being stored along with data representing changes betweensequential frames. After the partitions of the RAM have filled, theoldest data frames and difference data is deleted and new frames andcomparison data is added.

Proceeding now to FIG. 4B during a maintenance session of the hostcomputing system, (see step 200), the maintenance personnel will commandthe maintenance computing system 22 to retrieve data from the hostcomputing system 14 via the system 52 of the present invention. Whenaccessed by the maintenance computing system 22, the processor 64 of thesystem will initially access the SDRAM and transmit the most recent datacapture from the data grabber 56. Specifically, the processor willretrieve the data, compress it, and send it via the network 12 to themaintenance computing system 22. (See steps 210 and 220).

Importantly, after the first full data set is sent to the maintenancecomputing system, the processor 64 of the present inventionadvantageously reduces processing time by transmitting only changes inthe display data received in successive data sets from the frame grabberto the maintenance computing system. Specifically, after the first fulldata set has been sent, the processor will thereafter retrieve from RAMand transmit data representing the changes in the display data, asopposed to full data sets each time. (See steps 230 and 240). Themaintenance computing system 22 will receive these data sets and updatethe data displayed on the display terminal associated with themaintenance computing system 22, such that the display on the displayterminal of the maintenance computing system matches the data displayedon the host computing system 14.

In some instances, there may be abrupt changes in the data displayed bythe host computing system, such as when there is a screen change or atoggle between different screens. In these instances, the number ofchanges between two subsequent data frames captured by the frame grabber56 of the present invention may be fairly large, such that it requiresmore computing time and resources to implement the changes, as opposedto merely refreshing the display terminal of the maintenance computingsystem 22. In these instances, the processor 64 of the present inventionwill transmit the data set collected by the frame grabber, as opposed tothe difference data between the current data frame and previous dataframe. Specifically, in some embodiment, the processor 64 of the presentinvention may periodically refresh the display terminal of themaintenance computing system 22 by transmitting a complete new set ofdata as received from the frame grabber 56. In other embodiments, theprocessor of the present invention may compare the size of the data setscontaining the differences between two successive data frames. If thesize of the file is fairly large such that it exceeds a set thresholdvalue, the processor of the present invention will transmit an entirenew data frame to the maintenance computing system 22 to update thedisplay terminal.

As discussed previously, the system of the present invention includes anUSB interface, which may be used to input keyboard or mouse commands tothe host computing system. With reference to FIG. 4, while constantlygrabbing frames of the digital output by the video controller andtransmitting changes to the maintenance computing system, the processor64 of the present invention also listens for commands from themaintenance computing system to place control commands on the USBinterface 72 to thereby control the host computing system. Thesecommands may be keyboard command or mouse commands. The USB interfacemay also be used as a virtual floppy disk or CD-ROM to run software orinstall software on the host computing system via the network 12.

The system of the present invention provides several advantages over theprior art maintenance system. Specifically, the system of the presentinvention is implemented using an on board system that does not requirethe installation of software on each computing system. Further, thesystem provides for capture, compression, and transmittal of dataindependent of software, thereby reducing if not eliminating thedependency on the CPU and other system resources of a host computingsystem. The system of the present invention can be used to capture bothtext and graphical data with one hardware frame grabber.

Further, by capturing digital data instead of analog data from the videocontroller, the system of the present invention can more accuratelydetermine the differences between two successive sets of display data,and transmit less data to the maintenance computing system.Additionally, the USB interface of the present invention allows thesystem to provide keyboard and mouse control commands to the hostcomputing system, as well as emulate a floppy disk or CD-ROM for runningor installing software via the network. The present invention alsoincludes hardware for determining the health of the hardware componentsof the host computing system and transmit this health information to themaintenance computing system. Further, the system of the presentinvention includes an on board power supply and associated logic thatallows the system to remain on even if the power source of the hostcomputing system is turned off.

Many modifications and other embodiments of the invention will come tomind to one skilled in the art to which this invention pertains havingthe benefit of the teachings presented in the foregoing descriptions andthe associated drawings. Therefore, it is to be understood that theinvention is not to be limited to the specific embodiments disclosed andthat modifications and other embodiments are intended to be includedwithin the scope of the appended claims. Although specific terms areemployed herein, they are used in a generic and descriptive sense onlyand not for purposes of limitation.

1. An apparatus for transmitting to a remote location informationrelated to a host computing system, said apparatus comprising: a videocontroller that simultaneously outputs digital data of a first videooutput representing data for display and outputs a second video signalof a second video output for display on a terminal associated with thehost computing system; a frame grabber in electrical communication withthe first video output of the video controller, said frame grabbercapable of collecting sets of data output in digital form from the videocontroller independent of an analog to digital converter, wherein eachdigital data set represents a frame of data for display; and atransmission device for transmitting said data sets to a remote locationfor display.
 2. An apparatus according to claim 1 further comprising: astorage device in electrical communication with said frame grabber forstoring each of the digital data sets collected by said frame grabber;and a comparator for comparing a current and a previous digital data setcollected by said frame grabber and storing in said storage device adifference data set representing differences between the current andprevious digital data set.
 3. An apparatus according to claim 2 furthercomprising a processor in electrical communication with said storagedevice and said transmission device, wherein said processor at thebeginning of a maintenance session, transmits a current data set to aremote location and thereafter transmits difference data sets providedby said comparator representing changes in the data for display.
 4. Anapparatus according to claim 3 further comprising a universal serial bus(USB) interface in electrical communication with said processor and forconnection to a USB port of the host computing system, wherein saidprocessor inputs keyboard and mouse commands to the host computingsystem via said USB interface.
 5. An apparatus according to claim 4,wherein said transmission device transmits data sets to a remotemaintenance computing system having at least one storage device, andwherein said processor, via said USB interface, emulates the storagedevice of the remote maintenance computing system to the host computingsystem such that files and information stored in the storage device ofthe maintenance computing system can be accessed by the host computingsystem.
 6. An apparatus according to claim 1 further comprising acontroller in electrical communication with the host computing system,wherein said controller is capable of at least one of powering down andresetting the host computing system.
 7. An apparatus according to claim1 further comprising a controller in electrical communication with thehost computing system, wherein said controller receives informationrelated to the health of hardware of the host computing system fortransmission to a remote location.
 8. An apparatus according to claim 1further comprising an AC outlet adapter capable of providing power foruse by said apparatus if said apparatus does not receive power from thehost computing system.
 9. An apparatus according to claim 1 furthercomprising a backup power source for providing power to said apparatus.10. An apparatus according to claim 9 further comprising logic inelectrical communication with said backup power source, wherein saidlogic applies power from said backup source to said apparatus if otherpower sources are not available.
 11. An apparatus according to claim 1,wherein said transmission device is a processor and network connectorfor transmitting information via a network to a remote location.
 12. Theapparatus of claim 1, further comprising a first card containing thevideo controller and a second card comprising the frame grabber.
 13. Theapparatus of claim 1, further comprising a card containing the videocontroller, the frame grabber, the storage device, the comparator, andthe transmission device.
 14. The apparatus of claim 1, wherein the firstvideo output comprises a TFT/LCD bus.
 15. The apparatus of claim 1,wherein the second video output signal comprises an analog video signalthat is output from the second video output.
 16. A method fortransmitting to a remote location information related to a hostcomputing system, where the host computing system has a video controllerthat outputs digital data from a first video signal output representingthe data for display while simultaneously outputting a second videosignal from a second video signal output for display on a terminalassociated with the host computing system, said method comprising: whilethe second video signal is being output for display from the videocontroller, simultaneously collecting sets of data output in digitalform from the first video signal output of the video controllerindependent of an analog to digital converter, wherein each digital dataset represents a frame of data for display; storing each of the digitaldata sets collected by said collecting step in a storage device; andtransmitting data sets to a remote location for display.
 17. A methodaccording to claim 16, further comprising: comparing a current and aprevious digital data set collected by said collecting step; and storingthe storage device a different data set representing differences betweenthe current and previous digital data set.
 18. A method according toclaim 17, wherein transmitting data sets to a remote location comprisestransmitting at the beginning of a maintenance session a current dataset to a remote location and thereafter transmitting difference datasets provided by said comparing step representing changes in the datafor display.
 19. A method according to claim 16, further comprisingemulating keyboard and mouse commands via a universal serial bus (USB)port associated with the host computing system.
 20. A method accordingto claim 19, wherein said emulating step further comprises emulating viathe USB port associate with the host computing system a storage deviceof a remote maintenance computing system to the host computing systemsuch that files and information stored in the storage device of themaintenance computing system can be accessed by the host computingsystem.
 21. A method according to claim 16, further comprising receivinginformation related to the health of hardware of the host computingsystem for transmission to a remote location.
 22. A method according toclaim 16, further comprising supplying power from a backup power sourceif other power sources are not available.
 23. A method according toclaim 16, wherein said transmitting step transmits information via anetwork to a remote location.
 24. A system for transmitting to a remotelocation information related to a computing system, said apparatuscomprising: a host computing system having a video controller thatsimultaneously outputs digital data of a first video output representingdata for display and outputs a second video signal of a second videooutput for display on a terminal associated with the host computingsystem; a frame grabber in electrical communication with the digitalfirst video output of said video controller, said frame grabber capableof collecting sets of data output in digital form from said videocontroller independent of an analog to digital converter, wherein eachdigital data set represents a frame of data for display; a transmissiondevice for transmitting said data sets to a remote location so fordisplay.
 25. A system according to claim 24, further comprising: astorage device in electrical communication with said frame grabber forstoring each of the digital data sets collected by said frame grabber;and a comparator for comparing a current and a previous digital data setcollected by said frame grabber and storing in said storage device adifference data set representing differences between the current andprevious digital data set.
 26. A system according to claim 25 furthercomprising a processor in electrical communication with said storagedevice and said transmission device, wherein said processor at thebeginning of a maintenance session, transmits a current data set to aremote location and thereafter transmits difference data sets providedby said comparator representing changes in the data for display.
 27. Asystem according to claim 26 further comprising a universal serial bus(USB) interface in electrical communication with said processor and forconnection to a USB port of the host computing system, wherein saidprocessor inputs keyboard and mouse commands to the host computingsystem via said USB interface.
 28. A system according to claim 27,wherein said transmission device transmits data sets to a remotemaintenance computing system having at least one storage device, andwherein said processor, via said USB interface, emulates the storagedevice of the remote maintenance computing system to the host computingsystem such that files and information stored in the storage device ofthe maintenance computing system can be accessed by the host computingsystem.
 29. A system according to claim 24 further comprising acontroller in electrical communication with the host computing system,wherein said controller is capable of powering down and resetting thehost computing system.
 30. A system according to claim 24 furthercomprising a controller in electrical communication with the hostcomputing system, wherein said controller receives information relatedto the health of hardware of the host computing system for transmissionto a remote location.
 31. The system of claim 24, further comprising afirst card containing the video controller and a second card comprisingthe frame grabber.